/** * creation date: 27.04.2006 * first author: dsl * * (C) Copyright Die Softwareschneiderei GmbH, Karlsruhe, Germany */ package de.dhbw.tit07.progress.types; import java.text.DecimalFormat; public class Percent { public static final Percent ONEHUNDRED_PERCENT = Percent.createFromFactor(1.0d); public static final double PERCENTAGE_FACTOR = 100.0d; private final double value; public Percent(double value) { super(); this.value = value; } public static Percent createFromFactor(double factor) { return new Percent(factor * Percent.PERCENTAGE_FACTOR); } public static Percent createFromFactor(int part, int whole) { return Percent.createFromFactor(((double) part) / whole); } public double getValue() { return this.value; } public double getAsFactor() { return (getValue() / Percent.PERCENTAGE_FACTOR); } @Override public String toString() { return toFormattedString(null); } public String toFormattedString(DecimalFormat format) { StringBuilder result = new StringBuilder(); if (format != null) { result.append(format.format(getValue())); } else { result.append(getValue()); } result.append(" %"); //$NON-NLS-1$ return result.toString(); } /** * Bastard code, got generated by Eclipse 3.4.1 */ @Override public int hashCode() { final int prime = 31; int result = 1; long temp; temp = Double.doubleToLongBits(this.value); result = prime * result + (int) (temp ^ (temp >>> 32)); return result; } /** * Bastard code, got generated by Eclipse 3.4.1 */ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Percent other = (Percent) obj; if (Double.doubleToLongBits(this.value) != Double .doubleToLongBits(other.value)) return false; return true; } }